Commit 565e1ce7 authored by duanruiming's avatar duanruiming

[add] 态势检测-路口列表手动控制优化

parent cf32f8d8
...@@ -3,7 +3,7 @@ package net.wanji.web.controller; ...@@ -3,7 +3,7 @@ package net.wanji.web.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.wanji.feign.pojo.result.JsonViewObject; import net.wanji.feign.pojo.result.JsonViewObject;
import net.wanji.web.entity.TCrossControlHist; import net.wanji.web.dto.SignalOperationModeDTO;
import net.wanji.web.entity.TDeviceStatusLog; import net.wanji.web.entity.TDeviceStatusLog;
import net.wanji.web.po.AreaTreePO; import net.wanji.web.po.AreaTreePO;
import net.wanji.web.service.SituationDetectionService; import net.wanji.web.service.SituationDetectionService;
...@@ -205,8 +205,8 @@ public class SituationDetectionController extends BaseController { ...@@ -205,8 +205,8 @@ public class SituationDetectionController extends BaseController {
@ApiOperation(value = "路口列表-手动控制", notes = "路口列表-手动控制") @ApiOperation(value = "路口列表-手动控制", notes = "路口列表-手动控制")
@GetMapping("/listSignalControlInfos") @GetMapping("/listSignalControlInfos")
public JsonViewObject listSignalControlInfos() { public JsonViewObject listSignalControlInfos(Integer operationMode) {
Map<String, List<TCrossControlHist>> result = situationDetectionService.listSignalControlList(); List<SignalOperationModeDTO> result = situationDetectionService.listSignalControlList(operationMode);
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(result); return jsonViewObject.success(result);
} }
......
package net.wanji.web.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author duanruiming
* @date 2023/02/07 13:56
*/
@Data
@ApiModel(value = "信号机运行模式返回实体")
public class SignalOperationModeDTO {
@ApiModelProperty(value = "路口编号",notes = "")
private String crossId;
@ApiModelProperty(value = "路口名称",notes = "")
private String crossName;
@ApiModelProperty(value = "控制人",notes = "")
private String operationUser;
@ApiModelProperty(value = "开始时间",notes = "")
private String operationTime;
@ApiModelProperty(value = "控制类型",notes = "")
private Integer type;
@ApiModelProperty(name = "开始日期", notes = "")
private Date startTime;
}
package net.wanji.web.service; package net.wanji.web.service;
import net.wanji.web.dto.SignalOperationModeDTO;
import net.wanji.web.entity.TBaseCrossInfo; import net.wanji.web.entity.TBaseCrossInfo;
import net.wanji.web.entity.TCrossControlHist;
import net.wanji.web.entity.TDeviceStatusLog; import net.wanji.web.entity.TDeviceStatusLog;
import net.wanji.web.po.AreaTreePO; import net.wanji.web.po.AreaTreePO;
import net.wanji.web.vo.situationDetection.*; import net.wanji.web.vo.situationDetection.*;
...@@ -46,5 +46,5 @@ public interface SituationDetectionService { ...@@ -46,5 +46,5 @@ public interface SituationDetectionService {
DeviceFaultCountVO countSignalFaultInfos(); DeviceFaultCountVO countSignalFaultInfos();
Map<String, List<TCrossControlHist>> listSignalControlList(); List<SignalOperationModeDTO> listSignalControlList(Integer operationMode);
} }
...@@ -5,8 +5,11 @@ import cn.hutool.core.date.DateUnit; ...@@ -5,8 +5,11 @@ import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.wanji.common.utils.tool.BeanListUtils;
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.dto.SignalOperationModeDTO;
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.*;
...@@ -15,6 +18,7 @@ import net.wanji.web.service.TBaseCrossInfoService; ...@@ -15,6 +18,7 @@ import net.wanji.web.service.TBaseCrossInfoService;
import net.wanji.web.vo.situationDetection.*; import net.wanji.web.vo.situationDetection.*;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -482,22 +486,43 @@ public class SituationDetectionServiceImpl implements SituationDetectionService ...@@ -482,22 +486,43 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
} }
@Override @Override
public Map<String, List<TCrossControlHist>> listSignalControlList() { public List<SignalOperationModeDTO> listSignalControlList(Integer operationMode) {
Map<String, List<TCrossControlHist>> resultMap = new HashMap<>(); List<SignalOperationModeDTO> signalOperationModeDTOS = new ArrayList<>();
List<TCrossControlHist> tCrossControlHists = controlHistMapper.selectRecentList(); List<TCrossControlHist> tCrossControlHists = controlHistMapper.selectRecentList();
List<TCrossControlHist> centerOptList = tCrossControlHists.stream().filter(tCrossControlHist -> tCrossControlHist.getType() == 5).collect(Collectors.toList()); LambdaQueryWrapper<TBaseCrossInfo> queryWrapper = new LambdaQueryWrapper<>();
resultMap.put("1", centerOptList); // 中心优化 List<TBaseCrossInfo> tBaseCrossInfos = tBaseCrossInfoMapper.selectList(queryWrapper);
List<TCrossControlHist> manualControlList = tCrossControlHists.stream().filter(item -> item.getType() < 5 && item.getType() > 1).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(tCrossControlHists)) {
resultMap.put("2", manualControlList); // 手动控制 if (operationMode == 1) { //中心优化
List<TCrossControlHist> edgeOptList = tCrossControlHists.stream().filter(tCrossControlHist -> tCrossControlHist.getType() == 6).collect(Collectors.toList()); List<TCrossControlHist> centerOptList = tCrossControlHists.stream().filter(tCrossControlHist -> tCrossControlHist.getType() == 5).collect(Collectors.toList());
resultMap.put("3", edgeOptList); // 边缘优化 BeanListUtils.populateList(centerOptList, signalOperationModeDTOS, SignalOperationModeDTO.class);
List<TCrossControlHist> specialServiceList = tCrossControlHists.stream().filter(tCrossControlHist -> tCrossControlHist.getType() == 7).collect(Collectors.toList()); }
resultMap.put("4", specialServiceList); // 特勤控制 if (operationMode == 2) { // 手动控制
List<TCrossControlHist> manualControlList = tCrossControlHists.stream().filter(item -> item.getType() < 5 && item.getType() > 1).collect(Collectors.toList());
return resultMap; BeanListUtils.populateList(manualControlList, signalOperationModeDTOS, SignalOperationModeDTO.class);
}
if (operationMode == 3) { // 边缘优化
List<TCrossControlHist> edgeOptList = tCrossControlHists.stream().filter(tCrossControlHist -> tCrossControlHist.getType() == 6).collect(Collectors.toList());
BeanListUtils.populateList(edgeOptList, signalOperationModeDTOS, SignalOperationModeDTO.class);
}
if (operationMode == 4) { // 特勤控制
List<TCrossControlHist> specialServiceList = tCrossControlHists.stream().filter(tCrossControlHist -> tCrossControlHist.getType() == 7).collect(Collectors.toList());
BeanListUtils.populateList(specialServiceList, signalOperationModeDTOS, SignalOperationModeDTO.class);
}
}
for (SignalOperationModeDTO signalOperationModeDTO : signalOperationModeDTOS) {
for (TBaseCrossInfo tBaseCrossInfo : tBaseCrossInfos) {
if (StringUtils.equals(signalOperationModeDTO.getCrossId(), tBaseCrossInfo.getId())) {
signalOperationModeDTO.setCrossName(tBaseCrossInfo.getName());
signalOperationModeDTO.setOperationTime(signalOperationModeDTO.getStartTime().toString().substring(11, 19));
}
}
}
return signalOperationModeDTOS;
} }
} }
class CrossAlarmComparator implements Comparator<CrossAlarmOutVO> { class CrossAlarmComparator implements Comparator<CrossAlarmOutVO> {
@Override @Override
......
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