| | |
| | | import io.netty.channel.Channel; |
| | | import io.netty.channel.ChannelHandlerContext; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Resource |
| | | private UPWarnMsgAdptInfoDao upWarnMsgAdptInfoDao; |
| | | |
| | | @Resource |
| | | private RedisTemplate redisTemplate; |
| | | |
| | | |
| | | public void up_warn_msg(ChannelHandlerContext ctx, OuterPacket out) { |
| | | if (!redisTemplate.hasKey("login:" + out.getGnsscenterId())) { |
| | | log.error("链路还未登录校验,拒绝连接"); |
| | | ctx.close(); |
| | | return; |
| | | } |
| | | WarnMsg warnMsg = getWarnMsg(out); |
| | | DataType dataType = DataType.getDataType(warnMsg.getDataType()); |
| | | switch (dataType) { |
| | |
| | | case UP_WARN_MSG_ADPT_INFO: |
| | | log.info("上报报警信息({}):{}", DataType.UP_WARN_MSG_ADPT_INFO.getCode(), out); |
| | | up_warn_msg_adpt_info(ctx, out.getGnsscenterId(), warnMsg); |
| | | break; |
| | | case UP_CTRL_MSG_MONITOR_VEHICLE_ACK: |
| | | log.info("车辆单向监听应答消息({}):{}", DataType.UP_CTRL_MSG_MONITOR_VEHICLE_ACK.getCode(), out); |
| | | break; |
| | | case UP_CTRL_MSG_TAKE_PHOTO_ACK: |
| | | log.info("车辆牌照应答消息({}):{}", DataType.UP_CTRL_MSG_TAKE_PHOTO_ACK.getCode(), out); |
| | | break; |
| | | case UP_CTRL_MSG_TEXT_INFO_ACK: |
| | | log.info("下发车辆报文应答消息({}):{}", DataType.UP_CTRL_MSG_TEXT_INFO_ACK.getCode(), out); |
| | | break; |
| | | case UP_CTRL_MSG_EMERGENCY_MONITORING_ACK: |
| | | log.info("车辆应急接入监管平台应答消息({}):{}", DataType.UP_CTRL_MSG_EMERGENCY_MONITORING_ACK.getCode(), out); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | * 定时任务督办报警请求 |
| | | */ |
| | | public void taskUrgeTodo() { |
| | | List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIs(0x00); |
| | | List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIsAndPushTimeBefore(0x00, LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8))); |
| | | for (UPWarnMsgAdptInfo upWarnMsgAdptInfo : list) { |
| | | down_warn_msg_urge_todo_req(upWarnMsgAdptInfo); |
| | | } |
| | |
| | | * 报警督办请求 |
| | | */ |
| | | public void down_warn_msg_urge_todo_req(UPWarnMsgAdptInfo upWarnMsgAdptInfo) { |
| | | if (!redisTemplate.hasKey("login:" + upWarnMsgAdptInfo.getInferiorPlatformId())) { |
| | | log.error("链路还未登录校验,拒绝连接"); |
| | | return; |
| | | } |
| | | int inferiorPlatformId = upWarnMsgAdptInfo.getInferiorPlatformId(); |
| | | DOWNWarnMsgUrgeTodoReq downWarnMsgUrgeTodoReq = new DOWNWarnMsgUrgeTodoReq().build(upWarnMsgAdptInfo); |
| | | log.info("报警督办请求({}):{}", DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode(), JSON.toJSONString(downWarnMsgUrgeTodoReq)); |
| | | downWarnMsgUrgeTodoReq.setDataType(DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode()); |
| | | downWarnMsgUrgeTodoReq.setDataLength(92); |
| | | byte[] body = downWarnMsgUrgeTodoReq.encode(); |
| | | OuterPacket out = new OuterPacket(DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode(), body); |
| | | //获取从链路通道 |
| | | Channel channel = ChannelMap.getClientChannel(inferiorPlatformId); |
| | | if (null != channel && channel.isActive()) { |
| | | channel.writeAndFlush(out); |
| | | } else { |
| | | channel = ChannelMap.getServerChannel(inferiorPlatformId); |
| | | channel.writeAndFlush(out); |
| | | log.info("报警督办请求({}):{}", DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode(), JSON.toJSONString(downWarnMsgUrgeTodoReq)); |
| | | } |
| | | |
| | | upWarnMsgAdptInfo.setPushTime(LocalDateTime.now().plusDays(7).toEpochSecond(ZoneOffset.ofHours(8))); |
| | | upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo); |
| | | } |
| | | } |