Commit c67fb008 authored by duanruiming's avatar duanruiming

[update] 事件表添加修改时间,修改逻辑

parent 11d91c24
......@@ -16,4 +16,12 @@ import java.util.List;
public interface EventInfoMapper {
List<EventInfoPO> selectHistEvent();
void insertOne(EventInfoPO eventInfoPO);
void updateOne(EventInfoPO eventInfoPO);
/**
* 通过事件唯一ID查询
* @param eventSerialNumber
* @return
*/
EventInfoPO selectByEventSerialNumber(String eventSerialNumber);
}
......@@ -91,6 +91,11 @@ public class EventInfoPO {
*/
@ApiModelProperty(name = "入库时间", notes = "")
private Date ruksj;
/**
* 修改时间
*/
@ApiModelProperty(name = "入库时间", notes = "")
private Date modifyTime;
/**
* 车道id
*/
......@@ -147,4 +152,6 @@ public class EventInfoPO {
private Integer greenId;
@ApiModelProperty(name = "事件方向,溢出方向", notes = "")
private Integer dir;
@ApiModelProperty(name = "告警状态 0其他 1分析中 2优化中 3优化完", notes = "")
private Integer alarmStatus;
}
......@@ -3,16 +3,19 @@ package net.wanji.datacenter.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.common.utils.tool.StringUtils;
import net.wanji.datacenter.constant.EventAbnormalEnum;
import net.wanji.datacenter.mapper.EventInfoMapper;
import net.wanji.datacenter.pojo.dto.EventDataDTO;
import net.wanji.datacenter.pojo.po.EventInfoPO;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Objects;
/**
* @author duanruiming
......@@ -31,45 +34,66 @@ public class EventDataServiceImpl implements EventDataService {
try {
ObjectMapper mapper = JacksonUtils.getInstance();
EventDataDTO eventDataDTO = mapper.readValue(originData, EventDataDTO.class);
EventInfoPO eventInfoPO = new EventInfoPO();
String eventTypeName = eventDataDTO.getEventType();
if (EventAbnormalEnum.PHASE_EMPTY.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.PHASE_EMPTY.getType());
}
if (EventAbnormalEnum.CROSS_UNBALANCE.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.CROSS_UNBALANCE.getType());
}
if (EventAbnormalEnum.CROSS_OVERFLOW.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.CROSS_OVERFLOW.getType());
}
if (EventAbnormalEnum.GREEN_SLOW.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.GREEN_SLOW.getType());
String eventId = eventDataDTO.getEventId();
// 如果同一时间id更新结束时间和告警状态
if (StringUtils.isNotBlank(eventId)) {
EventInfoPO eventInfoPO4DB = eventInfoMapper.selectByEventSerialNumber(eventId);
if (Objects.nonNull(eventInfoPO4DB)) {
eventInfoPO4DB.setModifyTime(new Date());
eventInfoPO4DB.setEndTime(eventDataDTO.getEventEndTime());
eventInfoPO4DB.setAlarmStatus(1);
eventInfoMapper.updateOne(eventInfoPO4DB);
}
}
if (EventAbnormalEnum.GREEN_CONGEST.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.GREEN_CONGEST.getType());
}
if (EventAbnormalEnum.CROSS_CONGEST.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.CROSS_CONGEST.getType());
}
Date eventStartTime = eventDataDTO.getEventStartTime();
eventInfoPO.setStartTime(eventStartTime);
eventInfoPO.setEndTime(eventDataDTO.getEventEndTime());
eventInfoPO.setEventSerialNumber(eventDataDTO.getEventId());
eventInfoPO.setCrossId(eventDataDTO.getCrossId());
eventInfoPO.setGreenId(eventDataDTO.getGreenId());
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String dateStr = format.format(eventStartTime);
eventInfoPO.setDt(Integer.valueOf(dateStr));
eventInfoPO.setLat(eventInfoPO.getLat());
eventInfoPO.setLng(eventInfoPO.getLng());
eventInfoPO.setCategory(eventDataDTO.getEventLevel());
eventInfoPO.setPlaceDesc(eventDataDTO.getEventType());
eventInfoPO.setDir(Integer.valueOf(eventDataDTO.getDirection()) + 1);
EventInfoPO eventInfoPO = getEventInfoPO(eventDataDTO);
eventInfoMapper.insertOne(eventInfoPO);
} catch (Exception e) {
log.error("事件保存异常:", e);
throw new RuntimeException(e);
}
}
@NotNull
private static EventInfoPO getEventInfoPO(EventDataDTO eventDataDTO) {
EventInfoPO eventInfoPO = new EventInfoPO();
String eventTypeName = eventDataDTO.getEventType();
setEventType(eventInfoPO, eventTypeName);
Date eventStartTime = eventDataDTO.getEventStartTime();
eventInfoPO.setStartTime(eventStartTime);
eventInfoPO.setEndTime(eventDataDTO.getEventEndTime());
eventInfoPO.setEventSerialNumber(eventDataDTO.getEventId());
eventInfoPO.setCrossId(eventDataDTO.getCrossId());
eventInfoPO.setGreenId(eventDataDTO.getGreenId());
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String dateStr = format.format(eventStartTime);
eventInfoPO.setDt(Integer.valueOf(dateStr));
eventInfoPO.setLat(eventInfoPO.getLat());
eventInfoPO.setLng(eventInfoPO.getLng());
eventInfoPO.setCategory(eventDataDTO.getEventLevel());
eventInfoPO.setPlaceDesc(eventDataDTO.getEventType());
eventInfoPO.setDir(Integer.valueOf(eventDataDTO.getDirection()) + 1);
eventInfoPO.setRuksj(new Date());
return eventInfoPO;
}
private static void setEventType(EventInfoPO eventInfoPO, String eventTypeName) {
if (EventAbnormalEnum.PHASE_EMPTY.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.PHASE_EMPTY.getType());
}
if (EventAbnormalEnum.CROSS_UNBALANCE.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.CROSS_UNBALANCE.getType());
}
if (EventAbnormalEnum.CROSS_OVERFLOW.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.CROSS_OVERFLOW.getType());
}
if (EventAbnormalEnum.GREEN_SLOW.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.GREEN_SLOW.getType());
}
if (EventAbnormalEnum.GREEN_CONGEST.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.GREEN_CONGEST.getType());
}
if (EventAbnormalEnum.CROSS_CONGEST.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.CROSS_CONGEST.getType());
}
}
}
......@@ -377,22 +377,22 @@ public class GreenBeltInfoServiceImpl implements GreenBeltInfoService {
public static String greenBeltInfoData = "{\n" +
" \"backward_direction\": \"e2w\",\n" +
" \"belt_start_backward\": {\n" +
" \"13MQV0B5KE0\": 47.0,\n" +
" \"13MRN0B5MV0\": 47.0,\n" +
" \"13MSS0B5NT0\": 8.0,\n" +
" \"13MVM0B5OV0\": 18.0,\n" +
" \"13MQV0B5KE0\": 13.0,\n" +
" \"13MRN0B5MV0\": 39.0,\n" +
" \"13MSS0B5NT0\": 0.0,\n" +
" \"13MVM0B5OV0\": 5.0,\n" +
" \"13N0C0B5P30\": 0.0\n" +
" },\n" +
" \"belt_start_forward\": {\n" +
" \"13MQV0B5KE0\": 0.0,\n" +
" \"13MRN0B5MV0\": 9.0,\n" +
" \"13MSS0B5NT0\": 50.0,\n" +
" \"13MVM0B5OV0\": 38.0,\n" +
" \"13N0C0B5P30\": 55.0\n" +
" \"13MRN0B5MV0\": 10.0,\n" +
" \"13MSS0B5NT0\": 46.0,\n" +
" \"13MVM0B5OV0\": 20.0,\n" +
" \"13N0C0B5P30\": 51.0\n" +
" },\n" +
" \"control_duration\": 1800,\n" +
" \"control_method\": 1,\n" +
" \"control_time\": \"2024-12-07T16:28:00\",\n" +
" \"control_time\": \"2024-12-12T11:00:00\",\n" +
" \"cycle\": {\n" +
" \"13MQV0B5KE0\": 140.0,\n" +
" \"13MRN0B5MV0\": 140.0,\n" +
......@@ -402,53 +402,53 @@ public class GreenBeltInfoServiceImpl implements GreenBeltInfoService {
" },\n" +
" \"distance_backward\": {\n" +
" \"13MQV0B5KE0\": -1.0,\n" +
" \"13MRN0B5MV0\": 937.5,\n" +
" \"13MSS0B5NT0\": 574.3035714285714,\n" +
" \"13MVM0B5OV0\": 810.5222222222224,\n" +
" \"13N0C0B5P30\": 195.0\n" +
" \"13MRN0B5MV0\": 947.2222222222222,\n" +
" \"13MSS0B5NT0\": 575.9686507936507,\n" +
" \"13MVM0B5OV0\": 807.5999999999999,\n" +
" \"13N0C0B5P30\": 200.71428571428572\n" +
" },\n" +
" \"distance_forward\": {\n" +
" \"13MQV0B5KE0\": 937.5,\n" +
" \"13MRN0B5MV0\": 580.6444444444445,\n" +
" \"13MSS0B5NT0\": 806.1309523809523,\n" +
" \"13MVM0B5OV0\": 200.35714285714286,\n" +
" \"13MQV0B5KE0\": 947.2222222222222,\n" +
" \"13MRN0B5MV0\": 568.1777777777778,\n" +
" \"13MSS0B5NT0\": 806.7321428571428,\n" +
" \"13MVM0B5OV0\": 202.85714285714283,\n" +
" \"13N0C0B5P30\": -1.0\n" +
" },\n" +
" \"dynamic\": 1,\n" +
" \"forward_direction\": \"w2e\",\n" +
" \"green_width_backward\": 62.0,\n" +
" \"green_width_forward\": 63.0,\n" +
" \"green_width_forward\": 62.0,\n" +
" \"greenbelt_direction\": 2,\n" +
" \"greenbelt_id\": \"3\",\n" +
" \"greenbelt_length\": 2518.0,\n" +
" \"greenbelt_type\": 1,\n" +
" \"key_cross\": \"13MRN0B5MV0\",\n" +
" \"max_cycle\": 140,\n" +
" \"max_speed_backward\": 49.0,\n" +
" \"max_speed_forward\": 57.0,\n" +
" \"min_speed_backward\": 39.0,\n" +
" \"min_speed_forward\": 47.0,\n" +
" \"max_speed_backward\": 57.0,\n" +
" \"max_speed_forward\": 59.0,\n" +
" \"min_speed_backward\": 47.0,\n" +
" \"min_speed_forward\": 49.0,\n" +
" \"model_select\": 1,\n" +
" \"offset\": {\n" +
" \"13MQV0B5KE0\": 79.0,\n" +
" \"13MRN0B5MV0\": 4.0,\n" +
" \"13MSS0B5NT0\": 138.0,\n" +
" \"13MVM0B5OV0\": 60.0,\n" +
" \"13N0C0B5P30\": 60.0\n" +
" \"13MQV0B5KE0\": 117.0,\n" +
" \"13MRN0B5MV0\": 29.0,\n" +
" \"13MSS0B5NT0\": 27.0,\n" +
" \"13MVM0B5OV0\": 108.0,\n" +
" \"13N0C0B5P30\": 95.0\n" +
" },\n" +
" \"phase_end_backward\": {\n" +
" \"13MQV0B5KE0\": 117.0,\n" +
" \"13MRN0B5MV0\": 109.0,\n" +
" \"13MQV0B5KE0\": 114.0,\n" +
" \"13MRN0B5MV0\": 101.0,\n" +
" \"13MSS0B5NT0\": 114.0,\n" +
" \"13MVM0B5OV0\": 108.0,\n" +
" \"13N0C0B5P30\": 75.0\n" +
" \"13MVM0B5OV0\": 106.0,\n" +
" \"13N0C0B5P30\": 70.0\n" +
" },\n" +
" \"phase_end_forward\": {\n" +
" \"13MQV0B5KE0\": 96.0,\n" +
" \"13MRN0B5MV0\": 109.0,\n" +
" \"13MQV0B5KE0\": 92.0,\n" +
" \"13MRN0B5MV0\": 101.0,\n" +
" \"13MSS0B5NT0\": 114.0,\n" +
" \"13MVM0B5OV0\": 108.0,\n" +
" \"13N0C0B5P30\": 118.0\n" +
" \"13MVM0B5OV0\": 106.0,\n" +
" \"13N0C0B5P30\": 113.0\n" +
" },\n" +
" \"phase_start_backward\": {\n" +
" \"13MQV0B5KE0\": 0.0,\n" +
......@@ -466,30 +466,30 @@ public class GreenBeltInfoServiceImpl implements GreenBeltInfoService {
" },\n" +
" \"speed_backward\": {\n" +
" \"13MQV0B5KE0\": -1.0,\n" +
" \"13MRN0B5MV0\": 45.0,\n" +
" \"13MSS0B5NT0\": 45.94428571428572,\n" +
" \"13MVM0B5OV0\": 42.910000000000004,\n" +
" \"13N0C0B5P30\": 39.0\n" +
" \"13MRN0B5MV0\": 55.0,\n" +
" \"13MSS0B5NT0\": 50.57285714285714,\n" +
" \"13MVM0B5OV0\": 53.839999999999996,\n" +
" \"13N0C0B5P30\": 40.142857142857146\n" +
" },\n" +
" \"speed_forward\": {\n" +
" \"13MQV0B5KE0\": 45.0,\n" +
" \"13MRN0B5MV0\": 61.480000000000004,\n" +
" \"13MSS0B5NT0\": 58.04142857142857,\n" +
" \"13MVM0B5OV0\": 42.42857142857143,\n" +
" \"13MQV0B5KE0\": 55.0,\n" +
" \"13MRN0B5MV0\": 60.160000000000004,\n" +
" \"13MSS0B5NT0\": 52.80428571428571,\n" +
" \"13MVM0B5OV0\": 40.57142857142857,\n" +
" \"13N0C0B5P30\": -1.0\n" +
" },\n" +
" \"travel_time_backward\": {\n" +
" \"13MQV0B5KE0\": -1.0,\n" +
" \"13MRN0B5MV0\": 75.0,\n" +
" \"13MSS0B5NT0\": 45.0,\n" +
" \"13MVM0B5OV0\": 68.0,\n" +
" \"13MRN0B5MV0\": 62.0,\n" +
" \"13MSS0B5NT0\": 41.0,\n" +
" \"13MVM0B5OV0\": 54.0,\n" +
" \"13N0C0B5P30\": 18.0\n" +
" },\n" +
" \"travel_time_forward\": {\n" +
" \"13MQV0B5KE0\": 75.0,\n" +
" \"13MQV0B5KE0\": 62.0,\n" +
" \"13MRN0B5MV0\": 34.0,\n" +
" \"13MSS0B5NT0\": 50.0,\n" +
" \"13MVM0B5OV0\": 17.0,\n" +
" \"13MSS0B5NT0\": 55.0,\n" +
" \"13MVM0B5OV0\": 18.0,\n" +
" \"13N0C0B5P30\": -1.0\n" +
" }\n" +
"}";
......
......@@ -38,6 +38,8 @@
<result column="dt" property="dt"/>
<result column="green_id" property="greenId"/>
<result column="dir" property="dir"/>
<result column="alarm_status" property="alarmStatus"/>
<result column="modify_time" property="modifyTime"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -52,6 +54,21 @@
WHERE ruksj >= NOW() - INTERVAL 30 MINUTE
</select>
<update id="updateOne" parameterType="net.wanji.datacenter.pojo.po.EventInfoPO">
update t_event_info
set alarm_status = #{entity.alarmStatus}
set end_time = #{entity.endTime}
set alarm_status = #{entity.alarmStatus}
set modify_time = #{entity.modifyTime}
where event_serial_number = #{entity.eventSerialNumber}
</update>
<select id="selectHistEvent" parameterType="java.lang.String">
SELECT <include refid="Base_Column_List"/>
FROM t_event_info
WHERE event_serial_number = #{eventSerialNumber}
</select>
<!-- 新增表t_event_info信息 -->
<insert id="insertOne">
......
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