Commit a9ca0b81 authored by duanruiming's avatar duanruiming

[udpate] 动态检测-信号机故障与区域查询列表优化

parent 78f1410b
...@@ -6,6 +6,7 @@ import net.wanji.feign.pojo.result.JsonViewObject; ...@@ -6,6 +6,7 @@ import net.wanji.feign.pojo.result.JsonViewObject;
import net.wanji.web.entity.TDeviceStatusLog; import net.wanji.web.entity.TDeviceStatusLog;
import net.wanji.web.service.SituationDetectionService; import net.wanji.web.service.SituationDetectionService;
import net.wanji.web.vo.situationDetection.*; import net.wanji.web.vo.situationDetection.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -187,8 +188,15 @@ public class SituationDetectionController extends BaseController { ...@@ -187,8 +188,15 @@ public class SituationDetectionController extends BaseController {
@GetMapping("/listSignalFaultInfos") @GetMapping("/listSignalFaultInfos")
public JsonViewObject listSignalFaultInfos() { public JsonViewObject listSignalFaultInfos() {
List<TDeviceStatusLog> tDeviceStatusInfos = situationDetectionService.listSignalFaultInfos(); List<TDeviceStatusLog> tDeviceStatusInfos = situationDetectionService.listSignalFaultInfos();
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); List<SignalFaultInfoVO> signalFaultInfoVOS = new ArrayList<>(tDeviceStatusInfos.size());
return jsonViewObject.success(tDeviceStatusInfos); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
tDeviceStatusInfos.forEach(tDeviceStatusLog -> {
SignalFaultInfoVO signalFaultInfoVO = new SignalFaultInfoVO();
BeanUtils.copyProperties(tDeviceStatusLog, signalFaultInfoVO);
signalFaultInfoVO.setStartTime(tDeviceStatusLog.getGmtCreate().toString().substring(11, 19));
signalFaultInfoVOS.add(signalFaultInfoVO);
});
return jsonViewObject.success(signalFaultInfoVOS);
} }
@ApiOperation(value = "信号机故障统计", notes = "信号机故障统计") @ApiOperation(value = "信号机故障统计", notes = "信号机故障统计")
......
package net.wanji.web.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author duanruiming
* @date 2023/02/08 9:03
*/
@Data
@ApiModel(value = "路口名称实体", description = "路口名称实体")
public class CrossIdNameDTO {
@ApiModelProperty(value = "路口编号")
private String crossId;
@ApiModelProperty(value = "路口名称")
private String crossName;
}
\ No newline at end of file
...@@ -16,6 +16,7 @@ import net.wanji.feign.service.UtcFeignClients; ...@@ -16,6 +16,7 @@ import net.wanji.feign.service.UtcFeignClients;
import net.wanji.web.common.enums.*; import net.wanji.web.common.enums.*;
import net.wanji.web.common.util.CrossUtil; import net.wanji.web.common.util.CrossUtil;
import net.wanji.web.common.util.StringUtils; import net.wanji.web.common.util.StringUtils;
import net.wanji.web.dto.CrossIdNameDTO;
import net.wanji.web.entity.*; import net.wanji.web.entity.*;
import net.wanji.web.mapper.*; import net.wanji.web.mapper.*;
import net.wanji.web.po.*; import net.wanji.web.po.*;
...@@ -457,6 +458,9 @@ public class SituationDetectionServiceImpl implements SituationDetectionService ...@@ -457,6 +458,9 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
// key:辖区编号 value:路口列表 // key:辖区编号 value:路口列表
Map<Integer, List<TBaseAreaCross>> areaIdMap = entityList.stream().collect(Collectors.groupingBy(TBaseAreaCross::getAreaId)); Map<Integer, List<TBaseAreaCross>> areaIdMap = entityList.stream().collect(Collectors.groupingBy(TBaseAreaCross::getAreaId));
List<TBaseCrossInfo> tBaseCrossInfos = tBaseCrossInfoMapper.selectList(new LambdaQueryWrapper<>());
Map<String, String> crossIdNameMap = tBaseCrossInfos.stream().collect(Collectors.toMap(TBaseCrossInfo::getId, TBaseCrossInfo::getName));
// 辖区列表 // 辖区列表
LambdaQueryWrapper<TBaseAreaInfo> tBaseAreaInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TBaseAreaInfo> tBaseAreaInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
tBaseAreaInfoLambdaQueryWrapper.eq(TBaseAreaInfo::getType, 2); tBaseAreaInfoLambdaQueryWrapper.eq(TBaseAreaInfo::getType, 2);
...@@ -465,19 +469,25 @@ public class SituationDetectionServiceImpl implements SituationDetectionService ...@@ -465,19 +469,25 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
// 构建区域返回列表 // 构建区域返回列表
for (Map.Entry<Integer, List<TBaseAreaCross>> entry : areaIdMap.entrySet()) { for (Map.Entry<Integer, List<TBaseAreaCross>> entry : areaIdMap.entrySet()) {
AreaListVO areaListVO = new AreaListVO(); AreaListVO areaListVO = new AreaListVO();
Set<String> crossIds = new HashSet<>(); Set<CrossIdNameDTO> crossSet = new HashSet<>();
Set<String> ployLines = new HashSet<>(); Set<String> ployLines = new HashSet<>();
List<TBaseAreaCross> crosseList = entry.getValue(); List<TBaseAreaCross> crosseList = entry.getValue();
String areaName = null;
for (TBaseAreaCross tBaseAreaCross : crosseList) { for (TBaseAreaCross tBaseAreaCross : crosseList) {
for (TBaseAreaInfo tBaseAreaInfo : jurisdictionAreaList) { for (TBaseAreaInfo tBaseAreaInfo : jurisdictionAreaList) {
if (Objects.equals(tBaseAreaCross.getAreaId(), tBaseAreaInfo.getCode())) { if (Objects.equals(tBaseAreaCross.getAreaId(), tBaseAreaInfo.getCode())) {
crossIds.add(tBaseAreaCross.getCrossId()); areaName = tBaseAreaInfo.getName();
CrossIdNameDTO crossIdNameDTO = new CrossIdNameDTO();
crossIdNameDTO.setCrossId(tBaseAreaCross.getCrossId());
crossIdNameDTO.setCrossName(crossIdNameMap.get(tBaseAreaCross.getCrossId()));
crossSet.add(crossIdNameDTO);
ployLines.add(tBaseAreaInfo.getPolylines()); ployLines.add(tBaseAreaInfo.getPolylines());
} }
} }
} }
areaListVO.setCrossIds(crossIds); areaListVO.setCrossInfos(crossSet);
areaListVO.setPloyLines(ployLines); areaListVO.setPloyLines(ployLines);
areaListVO.setAreaName(areaName);
results.add(areaListVO); results.add(areaListVO);
} }
......
...@@ -3,6 +3,7 @@ package net.wanji.web.vo.situationDetection; ...@@ -3,6 +3,7 @@ package net.wanji.web.vo.situationDetection;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import net.wanji.web.dto.CrossIdNameDTO;
import java.util.Set; import java.util.Set;
...@@ -14,8 +15,11 @@ import java.util.Set; ...@@ -14,8 +15,11 @@ import java.util.Set;
@ApiModel(value = "区域列表实体", description = "区域列表实体") @ApiModel(value = "区域列表实体", description = "区域列表实体")
public class AreaListVO { public class AreaListVO {
@ApiModelProperty(value = "区域路口编号列表") @ApiModelProperty(value = "区域路口编号列表")
private Set<String> crossIds; private Set<CrossIdNameDTO> crossInfos;
@ApiModelProperty(value = "区域点列表") @ApiModelProperty(value = "区域点列表")
private Set<String> ployLines; private Set<String> ployLines;
@ApiModelProperty(value = "区域名称")
private String areaName;
} }
package net.wanji.web.vo.situationDetection;
import lombok.Data;
import net.wanji.web.entity.TDeviceStatusInfo;
/**
* @author duanruiming
* @date 2023/02/08 9:45
*/
@Data
public class SignalFaultInfoVO extends TDeviceStatusInfo {
private String startTime;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment