Commit ba6a778c authored by duanruiming's avatar duanruiming

[update] 入库数据处理优化

parent 259b2fa7
......@@ -108,6 +108,8 @@ public enum EventAbnormalEnum {
CROSS_UNBALANCE("702","路口失衡",1,1),
CROSS_OVERFLOW("703","路口溢出",1,1),
CROSS_DEADLOCK("704","路口死锁",1,1),
GREEN_SLOW("705","干线-缓行",1,1),
GREEN_CONGEST("706","干线-拥堵",1,1),
/*危险驾驶*/
CONFLICT_POINT("601", "冲突点",1,1),
......
......@@ -28,6 +28,12 @@ public class GreenBeltDataConsumerHandler implements KafkaListenerErrorHandler {
private GreenBeltInfoService greenBeltInfoService;
/**
* 卫博发送绿波时序图数据
* @param record
* @param acknowledgment
* @throws Exception
*/
@KafkaListener(topics = {"${kafka-consumer.greenBeltInfoDataTopic}"}, groupId = "group ")
public void receiveGreenBeltInfoData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception {
try {
......@@ -43,6 +49,12 @@ public class GreenBeltDataConsumerHandler implements KafkaListenerErrorHandler {
}
}
/**
* 绿波周期数据
* @param record
* @param acknowledgment
* @throws Exception
*/
@KafkaListener(topics = {"${kafka-consumer.greenWavePeriodTopic}"}, groupId = "group")
public void receiveGreenPeriodData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception {
String originalData = String.valueOf(record.value());
......
......@@ -24,4 +24,5 @@ public class EventDataDTO {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date eventEndTime;
private String eventLevel;
private Integer greenId;
}
......@@ -58,7 +58,10 @@ public class ImbalanceAlgorithmDTO {
private SchemeData data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class SchemeData {
@JsonProperty("platform_id")
private String platformId;
@JsonProperty("cycle")
private int cycle;
@JsonProperty("green_time")
......
......@@ -91,4 +91,6 @@ public class EventInfoPO {
private String eventId ;
@ApiModelProperty(name = "分区字段",notes = "")
private Integer dt ;
@ApiModelProperty(name = "路口所属绿波编号",notes = "")
private Integer greenId ;
}
......@@ -43,11 +43,18 @@ public class EventDataServiceImpl implements EventDataService {
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());
}
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));
......
......@@ -37,22 +37,25 @@ public class CrossStrategyOptServiceImpl implements CrossStrategyOptService {
Long curStamp = idx.getCurStamp();
Integer countDown = idx.getCountDown();
Integer rtnType = idx.getRtnType();
Long signalMachineStamp = idx.getSignalMachineStamp();
Long createStamp = idx.getCreateStamp();
Date date = new Date(curStamp);
CrossStrategyResultEntity entity = new CrossStrategyResultEntity();
entity.setCrossId(crossId);
entity.setSignalMachineStamp(String.valueOf(signalMachineStamp));
// 绿灯空放
entity.setCurrentAlgo(1);
entity.setRequestTime(date);
entity.setIssueTime(date);
entity.setInsertTime(new Date(createStamp));
entity.setCountDown(countDown);
entity.setExtendTime(countDown);
entity.setResponseCode(rtnType);
entity.setRtnType(rtnType);
crossStrategyResultMapper.insert(entity);
// rtnType大于0时,未执行
if (rtnType < 0) {
Long signalMachineStamp = idx.getSignalMachineStamp();
Long createStamp = idx.getCreateStamp();
Date date = new Date(curStamp);
CrossStrategyResultEntity entity = new CrossStrategyResultEntity();
entity.setCrossId(crossId);
entity.setSignalMachineStamp(String.valueOf(signalMachineStamp));
// 绿灯空放
entity.setCurrentAlgo(1);
entity.setRequestTime(date);
entity.setIssueTime(date);
entity.setInsertTime(new Date(createStamp));
entity.setCountDown(countDown);
entity.setExtendTime(countDown);
entity.setResponseCode(rtnType);
entity.setRtnType(rtnType);
crossStrategyResultMapper.insert(entity);
}
}
} catch (JsonProcessingException e) {
throw new Exception(e);
......@@ -64,26 +67,29 @@ public class CrossStrategyOptServiceImpl implements CrossStrategyOptService {
@Override
public void save(ImbalanceAlgorithmDTO dto) {
try {
ObjectMapper mapper = JacksonUtils.getInstance();
CrossStrategyResultEntity crossStrategyResultEntity = new CrossStrategyResultEntity();
crossStrategyResultEntity.setCrossId(dto.getPlatformId());
crossStrategyResultEntity.setCrossName(dto.getCrossName());
crossStrategyResultEntity.setCurrentAlgo(dto.getCurrentAlgo());
crossStrategyResultEntity.setRequestTime(dto.getRequestTime());
crossStrategyResultEntity.setIssueTime(dto.getIssueTime());
crossStrategyResultEntity.setResponseCode(dto.getResponseCode());
crossStrategyResultEntity.setTimingPlan(mapper.writeValueAsString(dto.getTimingPlan()));
crossStrategyResultEntity.setInsertTime(dto.getInsertTime());
crossStrategyResultEntity.setRtnType(dto.getRtnType());
crossStrategyResultEntity.setExtendTime(dto.getExtendTime());
crossStrategyResultEntity.setBlockRegion(dto.getBlockRegion());
crossStrategyResultEntity.setBlockType(dto.getBlockType());
crossStrategyResultEntity.setCountDown(dto.getCountDown());
crossStrategyResultEntity.setVideoStamp(dto.getVideoStamp());
crossStrategyResultEntity.setSignalMachineStamp(dto.getSignalMachineStamp());
crossStrategyResultEntity.setControlDir(dto.getControlDir());
crossStrategyResultEntity.setData(mapper.writeValueAsString(dto.getData()));
crossStrategyResultMapper.insert(crossStrategyResultEntity);
// 未操作的不存
if (!Objects.equals(0, dto.getRtnType())) {
ObjectMapper mapper = JacksonUtils.getInstance();
CrossStrategyResultEntity crossStrategyResultEntity = new CrossStrategyResultEntity();
crossStrategyResultEntity.setCrossId(dto.getPlatformId());
crossStrategyResultEntity.setCrossName(dto.getCrossName());
crossStrategyResultEntity.setCurrentAlgo(dto.getCurrentAlgo());
crossStrategyResultEntity.setRequestTime(dto.getRequestTime());
crossStrategyResultEntity.setIssueTime(dto.getIssueTime());
crossStrategyResultEntity.setResponseCode(dto.getResponseCode());
crossStrategyResultEntity.setTimingPlan(mapper.writeValueAsString(dto.getTimingPlan()));
crossStrategyResultEntity.setInsertTime(dto.getInsertTime());
crossStrategyResultEntity.setRtnType(dto.getRtnType());
crossStrategyResultEntity.setExtendTime(dto.getExtendTime());
crossStrategyResultEntity.setBlockRegion(dto.getBlockRegion());
crossStrategyResultEntity.setBlockType(dto.getBlockType());
crossStrategyResultEntity.setCountDown(dto.getCountDown());
crossStrategyResultEntity.setVideoStamp(dto.getVideoStamp());
crossStrategyResultEntity.setSignalMachineStamp(dto.getSignalMachineStamp());
crossStrategyResultEntity.setControlDir(dto.getControlDir());
crossStrategyResultEntity.setData(mapper.writeValueAsString(dto.getData()));
crossStrategyResultMapper.insert(crossStrategyResultEntity);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
......
......@@ -36,12 +36,13 @@
<result column="extend" property="extend"/>
<result column="video_urls" property="videoUrls"/>
<result column="dt" property="dt"/>
<result column="green_id" property="greenId"/>
</resultMap>
<sql id="Base_Column_List">
oid,plate_no,object_type,confidence,detect_time,grade,place_desc,lng,lat,category,type,start_time,end_time,
duration,source,ruksj,lane_id,rid,segment_id,cross_id,camera_oid,event_serial_number,data_status,global_id,
station_id,event_id,dt
station_id,event_id,dt,green_id
</sql>
<select id="selectHistEvent" resultType="net.wanji.datacenter.pojo.po.EventInfoPO">
......@@ -74,7 +75,8 @@
, segment_id
, cross_id
, dt
, event_serial_number)
, event_serial_number
, green_id)
VALUES ( #{oid}
, #{plateNo}
, #{objectType}
......@@ -97,6 +99,7 @@
, #{crossId}
, #{dt}
, #{eventSerialNumber}
, #{greenId}
)
ON DUPLICATE KEY UPDATE
end_time = values(end_time)
......
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