Commit 0b7b8298 authored by zhoushiguang's avatar zhoushiguang

路口异常状态增加方向

parent 2d3f20d6
......@@ -53,4 +53,13 @@ public class EventAlarmInfo {
@ApiModelProperty(value = "路口状态 0正常 1失衡 2拥堵 3溢出 5空放")
private Integer status;
@ApiModelProperty(value = "事件发生方向",hidden = true)
private String dir;
@ApiModelProperty(value = "事件发生转向",hidden = true)
private String turn;
@ApiModelProperty(value = "事件发生方向描述")
private String dirDesc;
}
......@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.exception.DubboProviderException;
import net.wanji.common.utils.tool.DateUtil;
import net.wanji.databus.dto.EventInfoTrafficStatusDTO;
......@@ -76,8 +77,8 @@ public class EventServiceImpl implements EventService {
String[] dirList = dirs.split("@");
List<String> allDirList = new ArrayList<>();
for (String dirArr : dirList) {
List<String> jsonArray = JSONArray.parseArray(dirArr,String.class);
allDirList.addAll(jsonArray.stream().map(o->(Integer.valueOf(o).toString())).distinct().collect(Collectors.toList()));
List<String> jsonArray = JSONArray.parseArray(dirArr, String.class);
allDirList.addAll(jsonArray.stream().map(o -> (Integer.valueOf(o).toString())).distinct().collect(Collectors.toList()));
}
//统计每个方向发生的次数
countMap = allDirList.stream().collect(Collectors.groupingBy(String::valueOf, Collectors.counting()));
......@@ -270,7 +271,48 @@ public class EventServiceImpl implements EventService {
@Override
public List<EventAlarmInfo> findNotFinishAlarmInfo() throws DubboProviderException {
return holoEventMapper.findNotFinishAlarmInfo();
List<EventAlarmInfo> list = holoEventMapper.findNotFinishAlarmInfo();
for (EventAlarmInfo info : list) {
String dir = info.getDir();
String turn = info.getTurn();
if (Objects.nonNull(dir)) {
List<Integer> dirJsonArray = JSONArray.parseArray(dir, Integer.class);
dirJsonArray = dirJsonArray.stream().distinct().collect(Collectors.toList());
StringBuilder stringBuilder = new StringBuilder();
if (Objects.nonNull(turn)) {
//有方向、有转向
List<Integer> turnJsonArray = JSONArray.parseArray(turn, Integer.class);
turnJsonArray = turnJsonArray.stream().distinct().collect(Collectors.toList());
for (int i = 0; i < dirJsonArray.size(); i++) {
String dirName = BaseEnum.SignalDirectionEnum.getNameByCode(Integer.valueOf(dirJsonArray.get(i))) + "进口";
String turnName = BaseEnum.TurnTypeEnum.getNameByCode(turnJsonArray.get(i));
String desc = info.getCurrentAlgo() + " 发生方向:" + dirName + turnName;
if (i != dirJsonArray.size()) {
stringBuilder.append(desc);
stringBuilder.append(";");
} else {
stringBuilder.append(desc);
}
}
} else {
//只有方向
for (int i = 0; i < dirJsonArray.size(); i++) {
String dirName = BaseEnum.SignalDirectionEnum.getNameByCode(Integer.valueOf(dirJsonArray.get(i))) + "进口";
if (i != dirJsonArray.size()) {
stringBuilder.append(dirName);
stringBuilder.append(";");
} else {
stringBuilder.append(dirName);
}
}
}
info.setDirDesc(stringBuilder.toString());
}
}
return list;
}
......
......@@ -126,7 +126,8 @@
b.label as current_algo,
SUBSTRING(c.location FROM 7 FOR 20) as wkt,
ifnull(a.alarm_status,-1) alarm_status,
a.opt_status
a.opt_status,
dir
from t_base_cross_info c
left join (select * from t_event_info where dt = DATE_FORMAT(NOW(),'%Y%m%d') and type in (701,702,703,707) and alarm_status in (0,1,2)) a on a.cross_id = c.id
left join (select a.event_type, a.label from t_config_event_category a where a.category = 4) b on a.type = b.event_type
......
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