Commit ec65fb62 authored by zhouleilei's avatar zhouleilei

Merge remote-tracking branch 'origin/master'

parents 5d2f59ad b859189e
package net.wanji.opt.entity;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -53,4 +54,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.dao.entity.GreenwaveHistPO;
......@@ -64,8 +65,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()));
......@@ -315,7 +316,55 @@ 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();
stringBuilder.append(info.getCurrentAlgo() + "发生方向:");
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 = dirName + turnName;
if (stringBuilder.indexOf(desc)>0){
continue;
}
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 (stringBuilder.indexOf(dirName)>0){
continue;
}
if (i != dirJsonArray.size()) {
stringBuilder.append(dirName);
stringBuilder.append(";");
} else {
stringBuilder.append(dirName);
}
}
}
info.setDirDesc(stringBuilder.toString());
}
}
return list;
}
......
......@@ -119,14 +119,16 @@
<!-- 查询路口未结束的报警状态 -->
<select id="findNotFinishAlarmInfo" parameterType="String" resultMap="eventAlarm">
select
DISTINCT
DISTINCT a.type as event_type,
case when a.type=701 then 5 when a.type=702 then 1 when a.type=703 then 3 when a.type=707 then 2 else ifnull(a.type,0) end as status,
c.id as cross_id,
c.name as cross_name ,
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,
turn
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